document.write("<script language=javascript src='resource/script/gis/gis.js'></script>");

// index页面轮询 
function lunxun(markerArray,map)
{

   $.ajax({
　　url:'car_location_query',  // 请求的URL
　　timeout : 500, // 超时时间设置，单位毫秒
　　type : 'get',  // 请求方式，get或post
　　// data :{}, //请求所传参数，json格式
　　// dataType:'json',//返回的数据格式
　　success:function(data){ // 请求成功的回调函数
　　　

     if(data.state==0)
     {
    	 var myPoint=new MyPoint(data.data.longitude,data.data.latitude);
    	 var regionName="黄浦区";
    	 var plateNum=data.data.plateNum;
    	 
        var i=0;
        for(;i<markerArray.length;i++)
        {
         if(markerArray[i].getTitle( )== data.data.plateNum)
         {
            markerArray[i].setPosition(new AMap.LngLat( myPoint.getLongitude(),myPoint.getLatitude()));
            
            closeInfoWindow();// 关掉以前报警
            if(!pointInPolygon(points,data.data.longitude,data.data.latitude))
            {
            	// 报警
          	  alarm(plateNum,regionName,myPoint,map);
            }else// 在区域内
            {
            	 var distance=new AMap.LngLat(data.data.longitude,data.data.latitude).distance(points);
                 if(distance<=500)
                 {
                    // 提醒
              	   warn(distance,plateNum,regionName,myPoint,map);
                 }
              
            }
            
            break;
          }
         }
 
        if(i>=markerArray.length)
        {
           var marker = new AMap.Marker({
               map:map,
               bubble:true
            });
        
         marker.setTitle(data.data.plateNum);
         marker.setPosition(new AMap.LngLat( data.data.longitude,data.data.latitude));
         markerArray.push(marker);
         
           if(!pointInPolygon(points,data.data.longitude,data.data.latitude))// 规则外
            {
        	  // 报警
        	  alarm(plateNum,regionName,myPoint,map);
        	  
            }else// 规则内
            {
               var distance=new AMap.LngLat(data.data.longitude,data.data.latitude).distance(points);
               if(distance<=500)
               {
                  // 提醒
            	   warn(distance,plateNum,regionName,myPoint,map);
               }
            }
        }
     
    }

　　},
　　complete : function(XMLHttpRequest,status){ // 请求完成后最终执行参数
　　　　if(status=='timeout'){// 超时,status还有success,error等值的情况
 　　　　　
　　　　}
　　}
});

   setTimeout("lunxun(markerArray,map)",500);
  
}

// 接近报警线，提醒
function warn(distance,plateNum,regionName,myPoint,map)
{
	var title='手掌科技温馨提示<span style="font-size:15px;color:#0000FF;">提醒</span>',
    content=[];
    content.push("<img src='resource/image/warn/wa'>车辆"+plateNum+"距离"+regionName+"的边界只有"+distance+"米了！");
    
     var infoWindow = new AMap.InfoWindow({
        isCustom: true,  // 使用自定义窗体
        content: createInfoWindow(title,content.join("<br>")),
        offset: new AMap.Pixel(16, -50)// -113, -140
       });
      infoWindow.open(map, [myPoint.getLongitude(),myPoint.getLatitude()]);
}

// 超出报警线，报警
function alarm(plateNum,regionName,myPoint,map)
{
	var title='手掌科技温馨提示<span style="font-size:15px;color:#FF0000;">报警</span>',
    content=[];
	content.push("<img src='resource/image/warn/wa'>车辆"+plateNum+"出了"+regionName+"的边界了！");
   
   var infoWindow = new AMap.InfoWindow({
        isCustom: true,  // 使用自定义窗体
        content: createInfoWindow(title,content.join("<br>")),
        offset: new AMap.Pixel(16, -50)// -113, -140
       });
   infoWindow.open(map, [myPoint.getLongitude(),myPoint.getLatitude()]);
}




// 构建自定义信息窗体
function createInfoWindow(title, content) {
    var info = document.createElement("div");
    info.className = "info";

    // 可以通过下面的方式修改自定义窗体的宽高
    // info.style.width = "400px";
    // 定义顶部标题
    var top = document.createElement("div");
    var titleD = document.createElement("div");
    var closeX = document.createElement("img");
    top.className = "info-top";
    titleD.innerHTML = title;
    closeX.src = "http://webapi.amap.com/images/close2.gif";
    closeX.onclick = closeInfoWindow;

    top.appendChild(titleD);
    top.appendChild(closeX);
    info.appendChild(top);

    // 定义中部内容
    var middle = document.createElement("div");
    middle.className = "info-middle";
    middle.style.backgroundColor = 'white';
    middle.innerHTML = content;
    info.appendChild(middle);

    // 定义底部内容
    var bottom = document.createElement("div");
    bottom.className = "info-bottom";
    bottom.style.position = 'relative';
    bottom.style.top = '0px';
    bottom.style.margin = '0 auto';
    var sharp = document.createElement("img");
    sharp.src = "http://webapi.amap.com/images/sharp.png";
    bottom.appendChild(sharp);
    info.appendChild(bottom);
    return info;
}

// 关闭信息窗体
function closeInfoWindow() {
    map.clearInfoWindow();
}



// 多边形区域内外判断方法
function pointInPolygon(points,longitude,latitude) {

	var i, j = points.length - 1;
	var oddNodes = false;

	for (i = 0; i < points.length; i++) {
		if ((points[i].getLat() < latitude && points[j].getLat() >= latitude
				|| points[j].getLat() < latitude
						&& points[i].getLat() >= latitude)
				&& (points[i].getLng() <= longitude
						|| points[j].getLng() <= longitude)) {
			if (points[i].getLng() + (latitude - points[i].getLat())
					/ (points[j].getLat() - points[i].getLat())
					* (points[j].getLng() - points[i].getLng()) < longitude) {
				oddNodes = !oddNodes;
			}
		}
		j = i;
	}

	return oddNodes;
}